
class RegressionMain {
	public static void main(String[] args){
			double[][] data =
	   		{
				{-10.000,-463019.00000},
				{-9.900,-440000.88155},
				{-9.800,-417907.84800},
				{-9.700,-396711.71945},
				{-9.600,-376384.89440},
				{-9.500,-356900.34375},
				{-9.400,-338231.60480},
				{-9.300,-320352.77525},
				{-9.200,-303238.50720},
				{-9.100,-286864.00115},
				{-9.000,-271205.00000},
				{-8.900,-256237.78305},
				{-8.800,-241939.16000},
				{-8.700,-228286.46495},
				{-8.600,-215257.55040},
				{-8.500,-202830.78125},
				{-8.400,-190985.02880},
				{-8.300,-179699.66475},
				{-8.200,-168954.55520},
				{-8.100,-158730.05465},
				{-8.000,-149007.00000},
				{-7.900,-139766.70455},
				{-7.800,-130990.95200},
				{-7.700,-122661.99045},
				{-7.600,-114762.52640},
				{-7.500,-107275.71875},
				{-7.400,-100185.17280},
				{-7.300,-93474.93425},
				{-7.200,-87129.48320},
				{-7.100,-81133.72815},
				{-7.000,-75473.00000},
				{-6.900,-70133.04605},
				{-6.800,-65100.02400},
				{-6.700,-60360.49595},
				{-6.600,-55901.42240},
				{-6.500,-51710.15625},
				{-6.400,-47774.43680},
				{-6.300,-44082.38375},
				{-6.200,-40622.49120},
				{-6.100,-37383.62165},
				{-6.000,-34355.00000},
				{-5.900,-31526.20755},
				{-5.800,-28887.17600},
				{-5.700,-26428.18145},
				{-5.600,-24139.83840},
				{-5.500,-22013.09375},
				{-5.400,-20039.22080},
				{-5.300,-18209.81325},
				{-5.200,-16516.77920},
				{-5.100,-14952.33515},
				{-5.000,-13509.00000},
				{-4.900,-12179.58905},
				{-4.800,-10957.20800},
				{-4.700,-9835.24695},
				{-4.600,-8807.37440},
				{-4.500,-7867.53125},
				{-4.400,-7009.92480},
				{-4.300,-6229.02275},
				{-4.200,-5519.54720},
				{-4.100,-4876.46865},
				{-4.000,-4295.00000},
				{-3.900,-3770.59055},
				{-3.800,-3298.92000},
				{-3.700,-2875.89245},
				{-3.600,-2497.63040},
				{-3.500,-2160.46875},
				{-3.400,-1860.94880},
				{-3.300,-1595.81225},
				{-3.200,-1361.99520},
				{-3.100,-1156.62215},
				{-3.000,-977.00000},
				{-2.900,-820.61205},
				{-2.800,-685.11200},
				{-2.700,-568.31795},
				{-2.600,-468.20640},
				{-2.500,-382.90625},
				{-2.400,-310.69280},
				{-2.300,-249.98175},
				{-2.200,-199.32320},
				{-2.100,-157.39565},
				{-2.000,-123.00000},
				{-1.900,-95.05355},
				{-1.800,-72.58400},
				{-1.700,-54.72345},
				{-1.600,-40.70240},
				{-1.500,-29.84375},
				{-1.400,-21.55680},
				{-1.300,-15.33125},
				{-1.200,-10.73120},
				{-1.100,-7.38915},
				{-1.000,-5.00000},
				{-0.900,-3.31505},
				{-0.800,-2.13600},
				{-0.700,-1.30895},
				{-0.600,-0.71840},
				{-0.500,-0.28125},
				{-0.400,0.05920},
				{-0.300,0.33925},
				{-0.200,0.58080},
				{-0.100,0.79735},
				{0,1.00000},
				{0.100,1.20345},
				{0.200,1.43200},
				{0.300,1.72555},
				{0.400,2.14560},
				{0.500,2.78125},
				{0.600,3.75520},
				{0.700,5.22975},
				{0.800,7.41280},
				{0.900,10.56385},
				{1.000,15.00000},
				{1.100,21.10195},
				{1.200,29.32000},
				{1.300,40.18005},
				{1.400,54.28960},
				{1.500,72.34375},
				{1.600,95.13120},
				{1.700,123.54025},
				{1.800,158.56480},
				{1.900,201.31035},
				{2.000,253.00000},
				{2.100,314.98045},
				{2.200,388.72800},
				{2.300,475.85455},
				{2.400,578.11360},
				{2.500,697.40625},
				{2.600,835.78720},
				{2.700,995.47075},
				{2.800,1178.83680},
				{2.900,1388.43685},
				{3.000,1627.00000},
				{3.100,1897.43895},
				{3.200,2202.85600},
				{3.300,2546.54905},
				{3.400,2932.01760},
				{3.500,3362.96875},
				{3.600,3843.32320},
				{3.700,4377.22125},
				{3.800,4969.02880},
				{3.900,5623.34335},
				{4.000,6345.00000},
				{4.100,7139.07745},
				{4.200,8010.90400},
				{4.300,8966.06355},
				{4.400,10010.40160},
				{4.500,11150.03125},
				{4.600,12391.33920},
				{4.700,13740.99175},
				{4.800,15205.94080},
				{4.900,16793.42985},
				{5.000,18511.00000},
				{5.100,20366.49595},
				{5.200,22368.07200},
				{5.300,24524.19805},
				{5.400,26843.66560},
				{5.500,29335.59375},
				{5.600,32009.43520},
				{5.700,34874.98225},
				{5.800,37942.37280},
				{5.900,41222.09635},
				{6.000,44725.00000},
				{6.100,48462.29445},
				{6.200,52445.56000},
				{6.300,56686.75255},
				{6.400,61198.20960},
				{6.500,65992.65625},
				{6.600,71083.21120},
				{6.700,76483.39275},
				{6.800,82207.12480},
				{6.900,88268.74285},
				{7.000,94683.00000},
				{7.100,101465.07295},
				{7.200,108630.56800},
				{7.300,116195.52705},
				{7.400,124176.43360},
				{7.500,132590.21875},
				{7.600,141454.26720},
				{7.700,150786.42325},
				{7.800,160604.99680},
				{7.900,170928.76935},
				{8.000,181777.00000},
				{8.100,193169.43145},
				{8.200,205126.29600},
				{8.300,217668.32155},
				{8.400,230816.73760},
				{8.500,244593.28125},
				{8.600,259020.20320},
				{8.700,274120.27375},
				{8.800,289916.78880},
				{8.900,306433.57585},
				{9.000,323695.00000},
				{9.100,341725.96995},
				{9.200,360551.94400},
				{9.300,380198.93605},
				{9.400,400693.52160},
				{9.500,422062.84375},
				{9.600,444334.61920},
				{9.700,467537.14425},
				{9.800,491699.30080},
				{9.900,516850.56235},
				{10.000,543021.00000},			
			};
	int popSize = 1000;
	int maxGeneration = 1000;
	double mutationProb=0.2;
	double crossoverProb = 0.8;
	Evolution evolution= new RegressionEvolution(data,popSize,maxGeneration,mutationProb,crossoverProb);
	evolution.evolve();
	System.out.println("result: "+evolution.getBest());
	}
}
